% 高斯光束小程序
% 输出高斯光束的复振幅光场
function U = GaussianBeam(params, w)
N = params.N;
lambda = params.lambda;
% k = 2*pi/lambda; % 波矢
D = params.D; % 光场的直径
%w = D/5; %高斯光束的束宽
A0 = 1; % 光强度
k = 2*pi; % 波数
% R = 1; % 焦深 (Rayleigh length)
% w = 0.5; % 束腰宽度
z = linspace(0, 10, 100); % 沿Z轴采样点
[x, y] = meshgrid(linspace(-D/2,D/2,N)); % 横纵坐标

% 计算光场
r = sqrt(x.^2 + y.^2);
U = A0 * exp(-k*(r.^2) / w);


% [x1,y1] = meshgrid(linspace(-D/2,D/2,N));
% U = exp(-(x1.^2+y1.^2)/w^2);   

% end of the function
end